package course.d1223.io流;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/*
IO流：
按照流向分为输入流和输出流
按照文件读写的类型，分为字节流和字符流
  学习字符流：
  abstract class Writer(字符输出类)：
  子类：FileWriter OutputStreamWriter BufferWriter

  FileWriter的构造方法：
  public FileWriter(File file)throws IOException
  根据给定的 File 对象构造一个 FileWriter 对象。
  public FileWriter(File file,boolean append)throws IOException
  根据给定的 File 对象构造一个 FileWriter 对象。如果第二个参数为 true，则将字节写入文件末尾处，而不是写入文件开始处。

  成员方法：
     public void write(int c)throws IOException;
     写入单个字符到输入流中
     public void write(char[] cs)throws IOException;
     写入字符数组到输入流中
     public void write(char[] cs, int off, int len)throws IOException;
     写入部分字符数组到输入流中,     off:开始的索引位置    len:指定的长度
     public void write(String str)throws IOException
     写入字符串。
     public void write(String str,int off,int len)throws IOException
     写入字符串的某一部分。
     public abstract void flush()throws IOException；
     把输出流中的数据给它刷新到文件中
     public abstract void close()throws IOException
     关输出流，但要先刷新它。


  把程序中的数据写入到文件中的步骤：
  1，创建FileWriter对象，绑定写入的文件
  2.使用对象中的write方法，把数据写入到输出流中
  3.使用刷新的方法，把输出流中的数据刷新到硬盘中
  4.关闭资源

  close方法在关闭流之前，都会调用一个flush方法
  把输出流中所有的数据刷新到硬盘中，再关闭资源
 */
public class d1 {
    public static void main(String[] args) {
        try {
            //  1，创建FileWriter对象，绑定写入的文件
            FileWriter fw  = new FileWriter(new File("c.txt"));
            //  2.使用对象中的write方法，把数据写入到输出流中
            fw.write('中');
            char[] cs = {'1','2','3','4','6'};
            fw.write(cs);
            fw.write(cs,0,2);
            fw.write("\r\n");
            fw.write("123456\n");
            fw.write("123456",0,2);
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
